//package com.gobang.service.impl;
//
//import com.gobang.service.MatchService;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.context.annotation.Profile;
//import org.springframework.stereotype.Service;
//
//import java.time.LocalDateTime;
//import java.time.format.DateTimeFormatter;
//import java.util.Random;
//
///**
// * 匹配系统服务Mock实现
// * 用于实时通信模块的测试和开发
// *
// * @author System
// * @since 1.0.0
// */
//@Service
//@Profile({"dev", "test"})
//@Slf4j
//public class MatchServiceMockImpl implements MatchService {
//
//    private final Random random = new Random();
//
//    @Override
//    public MatchResult processMatchRequest(Long userId) {
//        log.info("Mock处理匹配请求：用户{}", userId);
//
//        try {
//            // 模拟匹配逻辑：30%概率立即匹配成功，70%概率进入匹配队列
//            boolean immediateMatch = random.nextInt(100) < 30;
//
//            if (immediateMatch) {
//                // 模拟匹配成功
//                String roomId = "room_" + System.currentTimeMillis();
//                MatchOpponentInfo opponent = new MatchOpponentInfo(
//                    userId + 1000L, // 模拟对手ID
//                    "MockPlayer" + (userId + 1000L), // 模拟对手用户名
//                    1500 + random.nextInt(1000) // 模拟对手积分
//                );
//                String playerColor = random.nextBoolean() ? "BLACK" : "WHITE";
//                String startTime = LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);
//
//                log.info("Mock匹配成功：用户{}，房间{}，颜色{}", userId, roomId, playerColor);
//                return MatchResult.matchSuccess(roomId, opponent, playerColor, startTime);
//            } else {
//                // 模拟进入匹配队列
//                Integer waitTime = 10 + random.nextInt(50); // 10-60秒等待时间
//                Integer queuePosition = 1 + random.nextInt(5); // 1-5位队列位置
//
//                log.info("Mock进入匹配队列：用户{}，等待时间{}秒，队列位置{}", userId, waitTime, queuePosition);
//                return MatchResult.matching(waitTime, queuePosition);
//            }
//
//        } catch (Exception e) {
//            log.error("Mock匹配请求处理异常", e);
//            return MatchResult.failure("5001", "匹配服务异常");
//        }
//    }
//
//    @Override
//    public CancelMatchResult processCancelMatchRequest(Long userId) {
//        log.info("Mock处理取消匹配请求：用户{}", userId);
//
//        try {
//            // 模拟取消匹配逻辑：90%概率成功，10%概率失败（用户不在队列中）
//            boolean cancelSuccess = random.nextInt(100) < 90;
//
//            if (cancelSuccess) {
//                log.info("Mock取消匹配成功：用户{}", userId);
//                return CancelMatchResult.success();
//            } else {
//                log.info("Mock取消匹配失败：用户{}不在匹配队列中", userId);
//                return CancelMatchResult.failure("5004", "用户不在匹配队列中");
//            }
//
//        } catch (Exception e) {
//            log.error("Mock取消匹配请求处理异常", e);
//            return CancelMatchResult.failure("5005", "取消匹配失败");
//        }
//    }
//}